package com.galeno.utils;

import com.galeno.pojo.EventParam;
import com.galeno.pojo.LogBean;

import java.util.Map;

/**
 * @author galeno
 * @Title:
 * @Description: 用户触发事件的比较器
 * @date 2021/11/1320:38
 */
public class EventComparator {
    /**
     * 匹配用户事件
     * @param bean
     * @param triggerEvent
     * @return 满足返回true  不满足返回false
     */
    public static boolean isMatchTriggerEvent(LogBean bean, EventParam triggerEvent) {
        //当前用户输入的事件
        String currentEventId = bean.getEventId();
        //当前事件对应的行为数据
        Map<String, String> currentProp = bean.getProperties();
        //判断当前的事件ID和事先配置好的事件ID是否相同
        if (currentEventId.equals(triggerEvent.getEventId())) {
            //定义的条件对应的属性和规则
            Map<String, String> conditionProps = triggerEvent.getProperties();
            //循环定义多个属性
            for (String key : conditionProps.keySet()) {
                //当前一个行为的属性值
                String value = currentProp.get(key);
                //实现配置好的该属性对应的值
                String conditionValue = conditionProps.get(key);
                if (!conditionValue.equals(value)) {
                    return false;
                }
            }
        } else {
            return false;
        }
        return true;
    }


}
